package com.codedancer.campus.client.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.client.service.bo.circle.CircleCreateBo;
import com.codedancer.campus.client.service.bo.circle.CirclePageSearchBo;
import com.codedancer.campus.client.service.vo.circle.CirclePageVo;
import com.codedancer.campus.client.service.vo.circle.CircleVo;
import java.util.List;

public interface ICircleService {

    /**
     * 创建圈子
     * @param circleCreateBo
     */
    void create(CircleCreateBo circleCreateBo);

    /**
     * 查询圈子排名前十
     * @param currentUserUuid
     * @return
     */
    List<CircleVo> top10(String currentUserUuid);

    /**
     * 关注圈子
     * @param uuid
     */
    void follow(String uuid,String currentUserUuid);

    /**
     * 取消关注
     * @param uuid
     * @param currentLoginUuid
     */
    void cancelFollow(String uuid, String currentLoginUuid);

    /**
     * 分页查询圈子
     * @param circlePageSearchBo
     * @return
     */
    IPage<CirclePageVo> page(CirclePageSearchBo circlePageSearchBo);

    /**
     * 圈子详情
     * @param uuid
     * @return
     */
    CircleVo detail(String uuid,String currentUserUuid);

    /**
     * 获取某个学校全部圈子
     * @return
     */
    List<CircleVo> listBySchoolUuid(String currentUserUuid);

    /**
     * 分页查询用户关注或创建的圈子
     * @param circlePageSearchBo
     * @return
     */
    IPage<CirclePageVo> page2User(CirclePageSearchBo circlePageSearchBo);

    /**
     * 启用圈子
     * @param uuid
     */
    void enable(String uuid);

    /**
     * 禁用圈子
     * @param uuid
     */
    void disable(String uuid);

    /**
     * 删除圈子
     * @param uuid
     */
    void delete(String uuid);

    /**
     * 修改圈子
     * @param circleCreateBo
     */
    void update(CircleCreateBo circleCreateBo);
}
